# 函数跟方法是一个东西，实现了对象绑定的函数我们叫做方法
# 没有和对象绑定的，它通常就是一个普通的函数
# 既然函数跟方法是同一个东西，那么 Python 底层是如何辨别跟丝滑切换的呢？

class C:

    def func(self, x):
        return x


c = C()
# 通过类名去访问
print(C.func)  # <function C.func at 0x100b2cdc0>
# function：函数

# 通过对象去访问
print(c.func)  # <bound method C.func of <__main__.C object at 0x100ad68b0>>
# method：方法

# 问题：他是如何知道 C.func 是函数而c.func是方法呢？
# 答案：最终指向的还是描述符

print(type(c) is C)  # True

